//
//  CategoriaTienda.m
//  ProyectoMoviTiendas
//
//  Created by Daniel Paez on 3/6/12.
//  Copyright (c) 2012 __MyCompanyName__. All rights reserved.
//

#import "CategoriaTienda.h"
#import "SubcategoriaTienda.h"
#import "Item.h"

@implementation CategoriaTienda

@synthesize nombre, subcategorias, nombreTienda;


- (id)init
{
    self = [super init];
    if (self) {
        subcategorias = [[NSMutableArray alloc] init];
    }
    return self;
}

- (void) encodeWithCoder:(NSCoder*) coder
{
    //fecha,direccion,esDomicilio,precioTotal,items,recordatorio,pedirYa, tienda
    
    
    [coder encodeObject:[self nombre] forKey:@"nombre"];
    [coder encodeObject:[self subcategorias] forKey:@"subcategorias"];
    
    //    [coder encodeFloat:[self strokeWidth] forKey:@"stroke_width"];
}


- (id) initWithCoder:(NSCoder*) coder
{
    //[self init];
        self = [super init];
    self.nombre = [coder decodeObjectForKey:@"nombre"];
    self.subcategorias = [coder decodeObjectForKey:@"subcategorias"];
    
    //[self setStrokeWidth:[coder decodeFloatForKey:@"stroke_width"]];
    
    return self;
}

- (void) combinarSubcategorias:(NSMutableArray *) nSubcategorias
{
    
    BOOL encontro = NO;
    SubcategoriaTienda * temp;
    for (SubcategoriaTienda * subcate in nSubcategorias) 
    {
        for (int i = 0; i < subcategorias.count && !encontro; i++) {
            temp = [subcategorias objectAtIndex:i];
            if([temp.nombre isEqualToString:subcate.nombre])
            {

                [temp.items addObjectsFromArray:subcate.items];
               encontro = YES;
            }
        }
        if(!encontro)
        {
            temp = [[SubcategoriaTienda alloc] initConItems:subcate.items];
            temp.nombre = subcate.nombre;
            [subcategorias addObject:temp];
            
        }
        encontro = NO;
    }
}

-(void) normalizarSubcategorias
{
    SubcategoriaTienda * subcate1;
    SubcategoriaTienda * subcate2;
    
    NSMutableArray * mismSubcate = [[NSMutableArray alloc] init];
    for (int i = 0; i < subcategorias.count; i++)
    {
        subcate1 = [subcategorias objectAtIndex:i];
        for (int j = i+1; j < subcategorias.count; j++)
        {
            subcate2 = [subcategorias objectAtIndex:j];
            
            if([subcate1.nombre isEqualToString:subcate2.nombre])
            {
                [mismSubcate addObject:subcate2];
            }
        }
        
        for (SubcategoriaTienda * subc in mismSubcate)
        {
            [subcate1.items addObjectsFromArray:subc.items];
            [subcategorias removeObject:subc];
            
        }
        [mismSubcate removeAllObjects];
    }
}



@end
